package com.kang.service;

import java.util.List;

import com.kang.pojo.PurchaseItem;
import com.kang.pojo.PurchaseRequest;
import com.vonechina.entity.page.PurchaseRequestItemPage;
import com.vonechina.entity.page.PurchaseRequestPage;

/**
 * 采购申请服务层
 * 
 * @author zs614
 *
 */
public interface PurchaseRequestService {
	/**
	 * 删除采购申请
	 * 
	 * @param purchaserequisitionid
	 *            采购申请ID
	 * @return
	 */
	int deleteByPrimaryKey(Integer purchaserequisitionid);

	/**
	 * 通过主键查询采购申请
	 * 
	 * @param purchaseordereid
	 *            采购申请ID
	 * @return
	 */
	PurchaseRequest selectPurchaseRequestById(int purchaseordereid);

	/**
	 * 分页查询采购申请
	 * 
	 * @param page
	 *            搜索条件实体类
	 * @return
	 */
	List<PurchaseRequest> listPurchaseRequest(PurchaseRequestPage page);

	/**
	 * 提交采购申请
	 * 
	 * @param purchaserequisitionid
	 *            采购申请ID
	 * @return
	 */
	Integer submitRequest(Integer purchaserequisitionid);

	/**
	 * 保存修改状态
	 * 
	 * @param purchaserequisitionid
	 *            采购申请ID
	 * @param status
	 *            状态
	 * @return
	 */
	Integer updateStatus(Integer purchaserequisitionid, Integer status);

	/**
	 * 新增采购申请
	 * 
	 * @param pur
	 *            采购申请实体类
	 * @return
	 */
	Integer insertSelective(PurchaseRequest pur);

	/**
	 * 生成采购申请编号
	 * 
	 * @return
	 */
	String generatoApplicationNo();

	/**
	 * 更新采购申请
	 * 
	 * @param record
	 *            采购申请实体类
	 * @return
	 */
	int updateByPrimaryKey(PurchaseRequest record);

	/**
	 * 新增采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息
	 * @return
	 */
	int addItem(PurchaseItem item);

	/**
	 * 更新采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息
	 * @return
	 */
	int updateItem(PurchaseItem item);

	/**
	 * 查询采购申请物品信息
	 * 
	 * @param item
	 *            采购申请物品信息
	 * @return
	 */
	PurchaseItem selectItem(PurchaseItem item);

	/**
	 * 查询采购申请物品
	 * 
	 * @param purchaseRequisitionID
	 *            采购申请ID
	 * @param warehouseManagementID仓库ID
	 * @return
	 */
	List<PurchaseItem> listItem(int purchaseRequisitionID, int warehouseManagementID);

	/**
	 * 查询可用待采购物资
	 * 
	 * @param page
	 *            搜索条件实体类
	 * @return
	 */
	public List<PurchaseItem> listNotInItem(PurchaseRequestItemPage page);
}
